/*
 * Copyright 2008-2023 dexian.vip. All rights reserved.
 * Support: http://www.dexian.vip
 * License: http://www.dexian.vip/license
 */

package vip.dexian.core.base.mapstruct;


import vip.dexian.common.query.Page;
import vip.dexian.core.base.bean.BaseDTO;
import vip.dexian.core.base.bean.BaseEntity;

import java.io.Serializable;
import java.util.List;

/**
 * Entity to Dto
 *
 * @author 挺好的 2023年05月30日 19:49
 */
public abstract class BaseEntityToDTOAssembler<T extends BaseEntity <ID>, D extends BaseDTO <ID>, ID extends Serializable> {

    /**
     * entity -> DTO
     *
     * @param entity
     *         待转换的实体类
     *
     * @return DTO
     */
    public abstract D toDTO (T entity);

    /**
     * entities -> dto list
     *
     * @param entities
     *         实体类列表
     *
     * @return dto list
     */
    public abstract List <D> toDTO (List <T> entities);

    /**
     * page entity -> page dto
     *
     * @param page
     *         分页对象
     *
     * @return page dto
     */
    public abstract Page <D> toDTO (Page <T> page);
}
